home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 2 / AACD 2.iso / AACD / Magazine / GraphicsCards / StormMesa / src / clip.h < prev    next >
C/C++ Source or Header  |  1999-02-04  |  3KB  |  98 lines

  1. /* $Id: clip.h,v 3.2 1998/06/21 02:00:55 brianp Exp $ */
  2.  
  3. /*
  4.  * Mesa 3-D graphics library
  5.  * Version:  3.0
  6.  * Copyright (C) 1995-1998  Brian Paul
  7.  *
  8.  * This library is free software; you can redistribute it and/or
  9.  * modify it under the terms of the GNU Library General Public
  10.  * License as published by the Free Software Foundation; either
  11.  * version 2 of the License, or (at your option) any later version.
  12.  *
  13.  * This library is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * Library General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU Library General Public
  19.  * License along with this library; if not, write to the Free
  20.  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  */
  22.  
  23.  
  24. /*
  25.  * $Log: clip.h,v $
  26.  * Revision 3.2  1998/06/21 02:00:55  brianp
  27.  * cleaned up clip interpolation function code
  28.  *
  29.  * Revision 3.1  1998/02/03 23:46:40  brianp
  30.  * added 'space' parameter to clip interpolation functions
  31.  *
  32.  * Revision 3.0  1998/01/31 20:48:09  brianp
  33.  * initial rev
  34.  *
  35.  */
  36.  
  37.  
  38. #ifndef CLIP_H
  39. #define CLIP_H
  40.  
  41.  
  42. #include "types.h"
  43.  
  44.  
  45.  
  46. #ifdef DEBUG
  47. #  define GL_VIEWCLIP_POINT( V )   gl_viewclip_point( V )
  48. #else
  49. #  define GL_VIEWCLIP_POINT( V )            \
  50.      (    (V)[0] <= (V)[3] && (V)[0] >= -(V)[3]        \
  51.        && (V)[1] <= (V)[3] && (V)[1] >= -(V)[3]        \
  52.        && (V)[2] <= (V)[3] && (V)[2] >= -(V)[3] )
  53. #endif
  54.  
  55.  
  56.  
  57.  
  58. extern GLuint gl_viewclip_point( const GLfloat v[] );
  59.  
  60. extern GLuint gl_viewclip_line( GLcontext* ctx, GLuint *i, GLuint *j );
  61.  
  62. extern GLuint gl_viewclip_polygon( GLcontext* ctx, GLuint n, GLuint vlist[] );
  63.  
  64.  
  65.  
  66. extern GLuint gl_userclip_point( GLcontext* ctx, const GLfloat v[] );
  67.  
  68. extern GLuint gl_userclip_line( GLcontext* ctx, GLuint *i, GLuint *j );
  69.  
  70. extern GLuint gl_userclip_polygon( GLcontext* ctx, GLuint n, GLuint vlist[] );
  71.  
  72.  
  73. extern void gl_ClipPlane( GLcontext* ctx,
  74.                           GLenum plane, const GLfloat *equation );
  75.  
  76. extern void gl_GetClipPlane( GLcontext* ctx,
  77.                              GLenum plane, GLdouble *equation );
  78.  
  79.  
  80. /*
  81.  * Clipping interpolation functions
  82.  */
  83.  
  84. extern void gl_clip_interp_all( GLcontext *ctx, GLuint space,
  85.                                 GLuint dst, GLfloat t, GLuint in, GLuint out );
  86.  
  87. extern void gl_clip_interp_color_tex( GLcontext *ctx, GLuint space,
  88.                                 GLuint dst, GLfloat t, GLuint in, GLuint out );
  89.  
  90. extern void gl_clip_interp_tex( GLcontext *ctx, GLuint space,
  91.                                 GLuint dst, GLfloat t, GLuint in, GLuint out );
  92.  
  93. extern void gl_clip_interp_color( GLcontext *ctx, GLuint space,
  94.                                 GLuint dst, GLfloat t, GLuint in, GLuint out );
  95.  
  96.  
  97. #endif
  98.